package com.quick.proxy.server.config;

import com.quick.proxy.core.pojo.ProxyMapping;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.stereotype.Component;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;


/**
 * Description: 服务端配置类
 * Author: 吃素不吃肉
 * Date: 2023/7/9
 *
 * @author 吃素不吃肉
 */
@ConfigurationProperties(prefix = "proxy.server")
@Component
@Data
@RefreshScope
public class ServerConfig {
    /**
     * 代理服务端口
     */
    private int port = 9527;
    /**
     * 默认不启用
     * 如果客户端注册代理映射启用，
     * 这时默认是支持所有客户端自动注册代理地址，
     * 如果clientRegisterProxyMappingAccessKey有数据，
     * 则只支持clientRegisterProxyMappingAccessKey列表中accessKey
     */
    private boolean clientRegisterProxyMappingEnable;
    /**
     * 客户端注册代理映射访问密钥
     */
    private List<String> clientRegisterProxyMappingAccessKey = new ArrayList<>(1);
    /**
     * 代理映射,key 访问密钥 value 映射列表
     */
    private Map<String, List<ProxyMapping>> proxyMappings = new HashMap<>(1);
}
